/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package resultado;

import java.util.HashMap;
import java.util.Hashtable;

/**
 *
 * @author Leonardo Lino Nº45340
 * @author Diogo Pires Nº40351
 */
public class ResultadoHolder {
    
    private static ResultadoHolder instance = null;
    
    private int segundos;
    private int totalPedidosOK;
    private int totalPedidosFail;
    Hashtable<Integer,Integer> resOK = new Hashtable<Integer,Integer>(); // <segundo, total pedidos ok>
    Hashtable<Integer,Integer> resFail = new Hashtable<Integer,Integer>();
    
    
    private ResultadoHolder(){
        
    }
    
    public static ResultadoHolder getInstance(){
        
        if(instance==null){
            instance = new ResultadoHolder();
        }
        return instance;
    }
    
    public synchronized void incrementOK(int segundo, int total){
        if (resOK.get(segundo)== null){
            resOK.put(segundo, total);
        } else {
            int atual = resOK.get(segundo);
            resOK.put(segundo, atual+total);
        }
    }
    
     public synchronized void incrementFail(int segundo, int total){
        if (resFail.get(segundo)== null){
            resFail.put(segundo, total);
        } else {
            int atual = resFail.get(segundo);
            resFail.put(segundo, atual+total);
        }
    }
     
     public synchronized int getOKsegundo(int segundo){
         return (resOK.get(segundo)==null) ? 0:resOK.get(segundo);
     }
     
     public synchronized int getFailSegundo (int segundo){
         return (resFail.get(segundo)==null) ? 0:resFail.get(segundo);
     }

    public synchronized int getSegundos() {
        return segundos;
    }

    public synchronized void setSegundos(int segundos) {
        this.segundos = segundos;
    }
     
     
     
     public void clear(){
         resOK = new Hashtable<Integer,Integer>();
         resFail = new Hashtable<Integer,Integer>();
     }
    
}
